/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.cardapiodigital.model;

import br.com.cardapiodigital.data.TipodeCozinhasData;
import br.com.cardapiodigital.entity.TipodeCozinhas;
import br.com.cardapiodigital.exception.CardapioDigitalException;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import org.primefaces.event.SelectEvent;

/**
 *
 * @author egberto
 */
@ManagedBean
@ViewScoped
public class TipodeCozinhasModel extends AbstractModel implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    private TipodeCozinhasData tCozinhasData = null;
    private TipodeCozinhas tCozinha = null;
    private List<TipodeCozinhas> todosTCozinhas = null;
    private TipodeCozinhas cozinhaSelecionada = null;
    
    public TipodeCozinhasModel(){}
    
    public void salvar() {
        try {      
            getTCozinhasData().salvar(getTCozinha());            
            closeDialog();
            displayInfoMessageToUser("Created With Sucess");
            carregarTodosTCozinhas();
            resetTCozinhas();
        } catch (Exception e) {
            keepDialogOpen();
            displayErrorMessageToUser("Ops, we could not create. Try again later");
            e.printStackTrace();
        }
    }
    
    public void atualizar(){
        try {
            getTCozinhasData().atualizar(getCozinhaSelecionada());
            closeDialog();
            displayInfoMessageToUser("Updated With Sucess");
            carregarTodosTCozinhas();
            resetTCozinhas();
        } catch (Exception e) {
            keepDialogOpen();
            displayErrorMessageToUser("Ops, we could not create. Try again later");
            e.printStackTrace();
        }
    }
    
    public void excluir(){
        try {            
            TipodeCozinhas id = getTCozinhasData().obtem(getCozinhaSelecionada().getDescricao());
            getTCozinhasData().excluir(id.getId());
            closeDialog();
            displayInfoMessageToUser("Deleted With Sucess");
            carregarTodosTCozinhas();
            resetTCozinhas();
        } catch (Exception e) {
            keepDialogOpen();
            displayErrorMessageToUser("Ops, we could not create. Try again later");
            e.printStackTrace();
        }
    }

    public TipodeCozinhasData getTCozinhasData() {
        if(tCozinhasData == null){
            tCozinhasData = new TipodeCozinhasData();
        }            
        return tCozinhasData;
    }

    public TipodeCozinhas getTCozinha() {
        if(tCozinha == null){
            tCozinha = new TipodeCozinhas();
        }
        return tCozinha;
    }

    public void setTCozinha(TipodeCozinhas tCozinha) {
        this.tCozinha = tCozinha;
    }

    public List<TipodeCozinhas> carregarTodosTCozinhas() throws CardapioDigitalException {
        return todosTCozinhas = getTCozinhasData().buscarTodos();
    }

    public void resetTCozinhas() {
        tCozinha = new TipodeCozinhas();
    }

    public TipodeCozinhas getCozinhaSelecionada() {
        if(cozinhaSelecionada == null){
            cozinhaSelecionada = new TipodeCozinhas();
        }
        return cozinhaSelecionada;
    }

    public void setCozinhaSelecionada(TipodeCozinhas cozinhaSelecionada) {
        this.cozinhaSelecionada = cozinhaSelecionada;
    }
    
    public void onRowSelect(SelectEvent slc) {
        setCozinhaSelecionada((TipodeCozinhas) slc.getObject());
    }
    
    
}
